package uba.ing2.subite.services.authorizationrules;

import uba.ing2.subite.domain.Invoice;
import uba.ing2.subite.domain.PaymentCard;
import uba.ing2.subite.services.PaymentAuthorizationResult;

/**
 * Regla de autorización de pagos.
 */
public interface PaymentAuthorizationRule {
	/**
	 * Aplica la regla para la factura y tarjeta dados.
	 * @return resultado autorizado o rechazado según el criterio que implemente esta regla
	 */
	PaymentAuthorizationResult apply(Invoice invoice, PaymentCard card);
}
